# Набор шаблонов для сайтов Hugo от Radium
## Подключение темы на сайте
Настройте [слияние](https://gohugo.io/configuration/introduction/#merge-configuration-settings) конфигурации в hugo.toml, указав:
```toml
_merge = 'deep'
```
## Параметры
Все используемые параметры должны содержаться в настройках сайта в .Params.radium
publisher
: ссылка на профиль публикатора для элементов JSON-LD.
external_rel
: rel по умолчанию для абсолютных ссылок.
## render hooks
### render-link
Вставляет ссылку с разрешённым назначением ссылки.
Для абсолютных ссылок указывает rel из настроек сайта или значение по умолчанию `noopener noreferrer external`.
### render-blockquote
[Вставляет](https://gohugo.io/render-hooks/blockquotes/) блок цитаты с указанием источника и заголовка, а также блок alert.
## Шаблоны
### baseof
Базовый шаблон, включающий индексирование Pagefind только для main тега.
Для тега html устанавливается язык и направление, если оно явно прописано в настройках языка.
В шаблоне подключаются partial head, header, footer.
Блок main должен быть переопределён в отдельных шаблонах.
Блок head может быть переопределён в отдельных шаблонах, если требуется добавить что-то в тэг head.
## Partials
### element
Создаёт HTML элемент, с именем тэга = .tag, атрибутами = .attributes, содержимым .inner.
Если тэг не установлен, то проставляется значение по умолчанию `tag`.
### image
Отображает изображение, передаваемое в .image.
.image должен быть ресурсом, полученным через .Resources.Get* или resources.Get*.
Для SVG изображений производит сжатие, а для всех остальных указывает ширину и высоту.
Если установлен .alt, то устанавливает атрибут alt.
### logo
Отображает логотип со ссылкой.
Параметры:
- image - имя ресурса сайта с логотипом (img/logo.svg)
- class - класс ссылки, содержащей логотип (logo)
- link - ссылка, которая будет указана для логотипа (главная страница с учётом языка)
- alt - атрибут alt изображения (Logo image)
### head/favicon, head/apple-touch-icon
Связывают страницу с имеющимися favicon или apple-touch-icon.
Для поиска favicon применяется маска {,**/}favicon.*, а для apple-touch-icon - {,**/}apple-touch-icon*.png
### head/manifest
Связывает страницу с manifest.json, находящимся в корне assets/
### head/css
Подключает css/main.css
### head/js
Подключает js/main.js
### head/pagefind
Подключение стилей и скрипта, если окружение не является разработкой.
### head/alternate
Указывает link alternate для других языков и форматом страницы.
### head/base
Добавляет title, description и canonical в заголовок, а также meta charset + viewport.
### head/social
Добавляет рендер встроенных шаблонов OpenGraph и Twitter Cards.
### schema
Подключает JSON-LD схемы для связанных объектов.
Принимает в контексте либо страницу, либо dict с ключами page и schema.
Схема - это строка или массив строк.
Подключение в head:
```go-html-template
{{- partial "schema/json-ld.html" . | safeHTML }}
```
или
```go-html-template
{{- partial "schema/json-ld.html" (dict "page" . "schema" "BreadcrumbList") | safeHTML }}
```
Если в Page Bundle есть файл <тип>.jsonld (например, Person.jsonld), он будет добавлен в список schema.
Если по итогу для страницы список schema будет пустым, то будет отрендерен [встроенный](https://gohugo.io/templates/embedded/#schema) шаблон.
#### Статья
Для указания publisher в статье укажите publisher в Params страницы, либо в настройках сайта.
## Shortcodes
### include
Позволяет [вставить](https://gohugo.io/render-hooks/blockquotes/#pageinner-details) другой markdown файл в текущий.
Полезно при разделении частей страницы на несколько файлов.
### details
Корректный details, позволяющий рендерить html.
Аналогично [стандартному](https://gohugo.io/shortcodes/details/#article) shortcode, за исключением способа вызова — необходимо использовать вызов {{% details %}} для рендера внутреннего текста в качестве Markdown.
### a
Создаёт ссылку с атрибутами href, class, id, rel.
Полезно для установки rel.
Вызывает partial/element.
Если необходимы другие атрибуты, то переопределите этот shortcode.
### section
Создаёт секцию с атрибутами class, id.
Поддерживает стандартную и markdown нотацию вызова.
### video
Вставляет видео.
Поддерживает параметры:
- class
- poster
- loading
- height
- width
- src
- tabindex
- area-hidden
В тэг вставляются следующие параметры, только если в атрибутах не передан false:
- autoplay
- loop
- muted
- playsinline
- disablepictureinpicture
- disableremoteplayback
Если передать параметр controls с любым значением, кроме false, то будет вставлен этот атрибут.
```md
{{< video tabindex="-1" area-hidden="true" poster="https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217">}}
{{< source codecs="avc1.4d002a">}}
https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4
{{< /source >}}
{{< /video >}}
```
### source
Вставляет source для тэга video.
Ссылку можно вставить параметром src или передав внутри тэга.
Поддерживается вставка параметров:
- srcset
- sizes
- media
- width
- height
- type
Если type не задан, то тип будет определён автоматически.
При указании параметра codecs, он будет вставлен в type.